/************************************************************
 * Filename: Geometry.h
 * Purpose: Defines vertex structures.
 * Author: Jeremy Kings
 * Revision: 2 (6 December 2010)
 *
 * Copyright 2010, Digipen Institute of Technology
 ************************************************************/
#pragma once

#include "Vector2D.h"

#define TEXTURED_FVF (D3DFVF_XYZ|D3DFVF_TEX1)
#define PARTICLE_FVF (D3DFVF_XYZ|D3DFVF_DIFFUSE)
#define DEBUG_FVF (D3DFVF_XYZ)


	// Vertex structure with position and texture coords
	struct TexturedVertex
	{
		Vector3D Position;
		float tu, tv; // texture coordinates 
	};

	// Particle vertex for particles.
	struct ParticleVertex
	{
		Vector3D Position;
		DWORD Color;
	};

	// Used for drawing lines with the Debug Drawer.
	struct Line
	{
		Line(Vector2D a, Vector2D b, DWORD color)
			: Color(color)
		{
			Data[0] = Vector3D(a.x,a.y,0.5f);
			Data[1] = Vector3D(b.x,b.y,0.5f);
		}

		Vector3D Data[2];
		DWORD Color;
	};

	// Used for drawing text with D3DXFont.
	struct TextRect
	{
		TextRect(Vector2D pos, std::string text)
			: Pos(pos),Text(text){}

		Vector2D Pos;
		std::string Text;
	};

